alpha_measure Interface

interface
public subroutine alpha_measure(n, z, triangle_order, triangle_num, triangle_node, alpha_min, alpha_ave, alpha_area)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: n

The number of points.

real(kind=real64), intent(in) :: z(2,n)

The points.

integer(kind=int32), intent(in) :: triangle_order

The order of the triangles.

integer(kind=int32), intent(in) :: triangle_num

The number of triangles.

integer(kind=int32), intent(in) :: triangle_node(triangle_order,triangle_num)

The triangulation.

real(kind=real64), intent(out) :: alpha_min

The minimum value of alpha over all triangles.

real(kind=real64), intent(out) :: alpha_ave

The value of alpha averaged over all triangles.

real(kind=real64), intent(out) :: alpha_area

The value of alpha averaged over all triangles weighted by area.

Description

Determines the triangulated pointset quality measure ALPHA.

The ALPHA measure evaluates the uniformity of the shapes of the triangles defined by a triangulated pointset.

We compute the minimum angle among all the triangles in the triangulated dataset and divide by the maximum possible value (which, in degrees, is 60). The best possible value is 1, and the worst 0. A good triangulation should have an ALPHA score close to 1.

The code has been modified to 'allow' 6-node triangulations. However, no effort is made to actually process the midside nodes. Only information from the vertices is used.